home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 April
/
EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso
/
EARCD
/
comm
/
bbs
/
Hydra11s.lha
/
HBBS
/
Source
/
Utils
/
SelectMode
/
Main.C
< prev
next >
Wrap
C/C++ Source or Header
|
1996-06-25
|
3KB
|
129 lines
/*
Select Mode (C) 1995 Dominic Clifton - Aka Hydra/LSD - Deluxe Software Ltd!
Defines a screenmode for HBBS to use!
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <exec/types.h>
#include <exec/memory.h>
#include <libraries/reqtools.h>
#include <clib/exec_protos.h>
#include <clib/reqtools_protos.h>
#include <HBBS/ANSI_Codes.h>
#include <HBBS/Defines.h>
#include <HBBS/types.h>
#include <HBBS/structures.h>
#include <HBBS/hbbscommon_protos.h>
#include <HBBS/hbbscommon_pragmas.h>
struct Library *HBBSCommonBase=NULL;
struct ReqToolsBase *ReqToolsBase;
UBYTE *OPT_BBS_ScrModeID = "ScrModeID",
*OPT_BBS_ScrWidth = "ScrWidth",
*OPT_BBS_ScrHeight = "ScrHeight",
*OPT_BBS_ScrDepth = "ScrDepth";
UBYTE *FILE_SCRMODEPREFS = "HBBS:System/Data/CtrlScrPrefs.CFG";
static VOID cleanup(ULONG num)
{
if (ReqToolsBase)
CloseLibrary ((struct Library *)ReqToolsBase);
if (HBBSCommonBase)
{
HBBS_CleanUpCommon();
CloseLibrary (HBBSCommonBase);
}
if (num) printf("Door Error = %d\n",num);
exit(0);
}
static VOID init( void )
{
if(!(HBBSCommonBase = OpenLibrary("HBBSCommon.library",0)))
{
cleanup(1);
}
if (!(HBBS_InitCommon()))
{
cleanup(2);
}
if (!(ReqToolsBase = (struct ReqToolsBase *) OpenLibrary (REQTOOLSNAME, REQTOOLSVERSION)))
{
cleanup(3);
}
}
BOOL PickScreen( void )
{
BOOL retval=FALSE;
struct rtScreenModeRequester *scrmodereq;
struct CfgFileData *ScrCfg;
char params[30];
if (scrmodereq = rtAllocRequestA (RT_SCREENMODEREQ, NULL))
{
if (rtScreenModeRequest (scrmodereq, "Select Screen mode:",RTSC_Flags,SCREQF_GUIMODES | SCREQF_DEPTHGAD | SCREQF_SIZEGADS,
RTSC_MinHeight,200,
RTSC_MinWidth,640,
RTSC_MinDepth,2,
RTSC_MaxDepth,4,
TAG_END))
{
if (ScrCfg=HBBS_CreateConfig((FILE_SCRMODEPREFS)))
{
sprintf(params,"%d",scrmodereq->DisplayID);
HBBS_AddCfgItem(ScrCfg,OPT_BBS_ScrModeID,params);
sprintf(params,"%d",scrmodereq->DisplayHeight);
HBBS_AddCfgItem(ScrCfg,OPT_BBS_ScrHeight,params);
sprintf(params,"%d",scrmodereq->DisplayWidth);
HBBS_AddCfgItem(ScrCfg,OPT_BBS_ScrWidth,params);
sprintf(params,"%d",scrmodereq->DisplayDepth);
HBBS_AddCfgItem(ScrCfg,OPT_BBS_ScrDepth,params);
if (!HBBS_SaveConfig(ScrCfg))
{
HBBS_rterror("Error Saving Screenmode Prefs!");
}
else
{
retval=TRUE;
}
HBBS_FlushConfig(ScrCfg);
}
}
rtFreeRequest(scrmodereq);
}
return(retval);
}
void main( void )
{
init();
PickScreen();
cleanup(0);
}